//package com.luyi.sensor.config;//package com.anjiplus.template.gaea.business.modules.com.luyi.sensor.config;
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Component;
//import ru.yandex.clickhouse.ClickHouseConnection;
//import ru.yandex.clickhouse.ClickHouseDataSource;
//import ru.yandex.clickhouse.settings.ClickHouseProperties;
//
//import java.sql.*;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * @Classname ClickHouseJdbcParamConfig
// * @Description 读取数据库配置文件,并连接数据库
// * @Date 2019/12/14 17:29
// * @Created by Boyun
// */
//@Component
//@Slf4j
//public class ClickHouseJdbcParamConfig {
//    private static String clickhouseAddress;
//    private static String clickhouseUsername;
//    private static String clickhousePassword;
//    private static String clickhouseDB;
//    private static Integer clickhouseSocketTimeout;
//
//    @Value("${spring.clickhouse.address}")
//    public void setClickhouseAddress(String address) {
//        ClickHouseJdbcParamConfig.clickhouseAddress = address;
//    }
//
//    @Value("${spring.clickhouse.username}")
//    public void setClickhouseUsername(String username) {
//        ClickHouseJdbcParamConfig.clickhouseUsername = username;
//    }
//
//    @Value("${spring.clickhouse.password}")
//    public void setClickhousePassword(String password) {
//        ClickHouseJdbcParamConfig.clickhousePassword = password;
//    }
//
//    @Value("${spring.clickhouse.db}")
//    public void setClickhouseDB(String db) {
//        ClickHouseJdbcParamConfig.clickhouseDB = db;
//    }
//
//    @Value("${spring.clickhouse.socketTimeout}")
//    public void setClickhouseSocketTimeout(Integer socketTimeout) {
//        ClickHouseJdbcParamConfig.clickhouseSocketTimeout = socketTimeout;
//    }
//
//    public static Connection getConn() {
//        ClickHouseConnection conn = null;
//        ClickHouseProperties properties = new ClickHouseProperties();
//        properties.setUser(clickhouseUsername);
//        properties.setPassword(clickhousePassword);
//        properties.setDatabase(clickhouseDB);
//        properties.setSocketTimeout(clickhouseSocketTimeout);
//        String[] url = clickhouseAddress.split(",");
//        for (int i = 0; i < url.length; i++) {
//            ClickHouseDataSource clickHouseDataSource = new ClickHouseDataSource(url[i], properties);
//            try {
//                conn = clickHouseDataSource.getConnection();
//                return conn;
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
//        return null;
//    }
//
//    /**
//     * 执行sql通用方法
//     * @param sql
//     * @return
//     */
//    public static List<Map> exeSql(String sql) {
//        Connection connection = getConn();
//        try {
//            Statement statement = connection.createStatement();
//            //使用statement执行SQL
//            ResultSet results = statement.executeQuery(sql);
//            //执行结果集
//            ResultSetMetaData rsmd = results.getMetaData();
//            List<Map> list = new ArrayList();
//            while (results.next()) {
//                Map row = new HashMap();
//                for (int i = 1; i <= rsmd.getColumnCount(); i++) {
//                    row.put(rsmd.getColumnName(i), results.getString(rsmd.getColumnName(i)));
//                }
//                list.add(row);
//            }
//            return list;
//        } catch (SQLException e) {
//            log.error("ExeSql:{}", sql);
//            e.printStackTrace();
//        }
//        return null;
//    }
//}
